1. Field of the Invention
The present invention relates to the control of pulse-driven actuators for machine tools or industrial robots.
2. Description of the Related Art
In computer-controlled machine tools or industrial robots, a controlled portion moves along a programmed track at a specified velocity.
Recently, as the working accuracy of machine tools increases, demands for equalization of the moving velocity and flexible change of the moving velocity according to the shape of the moving path are put on pulse-controlled systems such as machine tools. In machine tools of the orthogonal coordinate system having two or three axes, pulse-driven actuators are provided correspondingly to the respective orthogonal coordinate axis. Each actuator is directly or indirectly connected to a controlled portion, which moves along a programmed track with a function of velocity obtained through vector composition of the actuator moving velocity along each axis and time. A pulse motor is generally used for the actuator, and the total quantity of pulses applied to the pulse motor determines the movement amount, while the number of pulses per unit time determines the movement velocity. A rate multiplier is used for controlling pulses supplied to such actuator.
FIG. 1 is a block diagram of the conventional actuator control system for use with a machine tool. An oscillator OSC generates a pulse of a fixed frequency. 6-bit binary rate multipliers BRM1 to BRM3 are provided to supply pulses to the respective actuators on three orthogonal axes X1 to X3. An MPU sequentially executes a control program stored in a memory and sends actuator control data to 6-bit input registers R1 to R3. The input register supplies a 6-bit designation rate for determining the conversion rate between the number of input pulses and the number of output pulses to the rate input of the multiplier.
The operation of the above system is described with reference to FIG. 2 as an example, in which a controlled portion such as the cutting tool of a machine tool is moved from a coordinate point A to a point K. In the memory, a program for moving the cutting tool along a track P is stored. In the program, the coordinates of the plurality of points A to K through which the track P is passing, the velocity data of the cutting tool, and a command specifying the interpolation type between each point are included. The interpolation type includes linear interpolation, circular interpolation, and the like. The velocity of the cutting tool depends on external factors such as the thickness of a workpiece, and working accuracy, and the velocity is specified so as to be constant over the whole track.
To move the cutting tool from the point A to the point B, the MPU receives an execution command indicating a linear interpolation from the memory, and data on the coordinates of the points A and B and on the moving velocity between them. The MPU interpolates the track between the points A and B by a straight line Q of a length L according to the execution command, further divides the length L into a plurality of minute lengths .DELTA.L through which the cutting tool moves along the straight line Q in a minute time .DELTA.T, and calculates the minute length component through which the actuator on each axis must move correspondingly to the minute length .DELTA.L.
Further, the MPU sends a predetermined bit pattern to the input register so that the multiplier can output pulses in a number corresponding to the minute length .DELTA.L during the minute time .DELTA.T. The actuators X1 to X3 receive the pulses outputted from the corresponding multipliers, and operate in synchronism with each other to move the controlled portion along the straight line Q. .DELTA.T is the time of one cycle over which the rate multiplier having a predetermined number of bits operates according to the frequency of the input pulse.
To move the cutting tool along the interpolated straight line Q at a specified velocity, the MPU calculates the minute length .DELTA.L through which the cutting tool must move within the minute time .DELTA.T. That is, the specified velocity is expressed by .DELTA.L/.DELTA.T. However, the minute time .DELTA.T and the specified velocity F cannot be determined so that the minute length .DELTA.L uniformly divides the length L.
Thus, the last minute length is shorter or longer than the minute length .DELTA.L, and the velocity of the cutting tool becomes slower or faster than the specified velocity if the minute time .DELTA.T is constant.
When the controlled portion is moved from point A to point K by repeating the above operation, the velocity becomes lower or higher than the specified velocity every time just before the coordinates of the end point of the interpolated line are reached. Thus, a uniform velocity cannot be obtained over the whole track P. Further, the rate multiplier always has jitter due to its operation principle in the output frequency even if pulses are provided to the input at equal intervals. Thus, the operation velocity of the controlled portion varies to adversely affect the synchronizing operation of the three axis, which leads to accuracy degradation to the specified path.
Additionally, when the respective coordinates given on the track P of FIG. 2 are linearly interpolated (e.g., if the angle between the interconnected segments connecting the coordinates, such as formed at the connecting point between the segment AB and the segment BC, becomes large and the interpolated straight line steeply bends at the connecting point), the actual track of the cutting tool deviates from the specified track when the cutting tool is moved at the specified velocity commanded by the program. To remedy such a problem, conventionally the operator manually forces the velocity to change.
U.S. Pat. No. 3,878,372 discloses a circuit for pulse control of the moving of a machine tool comprising two or three axes, and which calculates a feed rate number from the programmed moving amounts and moving velocities along the respective axis perpendicular to each other. The feed rate number represents the ratio of vector velocity to vector composition value of the moving amount along each axis, and the vector composition value is calculated to calculate the feed rate number.
The feed rate generator includes a rate multiplier for calculating the feed rate number, and further, the function generator includes a rate multiplier for determining the moving amount of the actuator. The feed rate number is supplied to the multiplier of the function generator. The output of the function generator is supplied to a digital control loop as a pulse rate corresponding to the particular axis.